#include "smallboard.h"
#include "ui_smallboard.h"

SmallBoard::SmallBoard(QWidget *parent) : QWidget(parent), ui(new Ui::SmallBoard)
{
    ui->setupUi(this);

    Messages.append("Bienvenidos a Nokia");
    Messages.append("Soy el mensaje 2");
    Messages.append("Telefonos liberados, la mejor calidad y atención de todo el sambil. No se arrepentira, bienvenido.");

    INITIALSTATE= true;
    CurrentMessage= 0;
    MovedSpace= 0;
    Scroller= new QTimer(this);
    connect(Scroller, SIGNAL(timeout()), this, SLOT(ScrollText()));
}

SmallBoard::~SmallBoard()
{
    delete ui;
}

void SmallBoard::Initialize()
{
    QDesktopWidget Desktop;

    // Ventana sin borde ni botones. Y por encima de cualquier otra
    setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);

    // En que resolucion estamos?
    DesktopRes= Desktop.availableGeometry(Desktop.primaryScreen());

    // Adaptemos la ventana para la resolucion actual!
    resize(DesktopRes.width(), height());

    // Finalmente, vamos a mover la ventana al borde inferior del monitor
    move(0, DesktopRes.height()-40);

    qDebug("Initial Size: %d", ui->ScrollingText->width());
    NextMessage();

    Scroller->start(25);
}

// Esta es la funcion que animara el texto
void SmallBoard::ScrollText()
{
    MessagePosition= ui->ScrollingText->pos();
    qDebug("Pos: %d - %d", MessagePosition.x(), ui->ScrollingText->width());

    // Ya salio de pantalla?
    if (MessagePosition.x()<=-(ui->ScrollingText->width()))
    {
        //ui->ScrollAreaWidget->scroll(MovedSpace, 0);
        qDebug("Moved Space: %d - Desktop Width: %d - RESULT: %d, extra data: %d", MovedSpace, DesktopRes.width(), ui->ScrollingText->pos().x(), ui->ScrollAreaWidget->pos().x());

        NextMessage();
        qDebug("After changed: %d, extra data: %d", ui->ScrollingText->pos().x(), ui->ScrollAreaWidget->pos().x());
        INITIALSTATE= true;
    }
    else
    {
        if (INITIALSTATE)
        {
            INITIALSTATE= false;
            //ui->ScrollAreaWidget->scroll(DesktopRes.width(), 0);
            //ui->ScrollingArea->s
            MovedSpace= 0;
        }
        else
        {
            ui->ScrollAreaWidget->scroll(ui->ScrollAreaWidget->pos().x()-5, 0);
            MovedSpace+= 5;
        }
    }
}

/* Esta funcion cargara un nuevo texo de Messages cuando
 * el anterior haya salido totalmente de la pantalla
 */
void SmallBoard::NextMessage()
{
    qDebug("\t%d", CurrentMessage);

    if (CurrentMessage>=Messages.count())
        CurrentMessage=0;

    ui->ScrollingText->setText(Messages.at(CurrentMessage));
    CurrentMessage++;
}

void SmallBoard::on_CloseButton_clicked()
{
    emit Closed();
}

void SmallBoard::on_HideButton_clicked()
{
    ui->HideButton->setChecked(!ui->HideButton->isChecked());
    ui->ButtonsFrame->hide();
    ui->HideButton->setIcon(QIcon("/SmartBoard/pictures/Arrow_Left.png"));
}

void SmallBoard::on_HideButton_pressed()
{
    ui->HideButton->setChecked(!ui->HideButton->isChecked());
    ui->ButtonsFrame->show();
    ui->HideButton->setIcon(QIcon("/SmartBoard/pictures/Arrow_Right.png"));
}
